using UniversalAdmin.Application.DTOs;

namespace UniversalAdmin.Application.Services;

//用户信息管理接口
public interface IUserService
{
    Task<UserDto?> GetUserByIdAsync(Guid id); // 根据用户ID获取用户信息
    Task<UserDto?> UpdateUserAsync(Guid id, UPdateUserDto dto); // 更新用户信息
    Task<List<UserDto>> SearchUsersAsync(string keyword); //模糊查询
    Task<PagedResultDto<UserDto>> GetUsersAsync(int page, int pageSize);//分页查询
    Task<UserDto> CreateUserAsync(CreateUserDto dto); // 创建用户
    Task<bool> DeleteUserAsync(Guid id); // 删除用户

    // 用户角色管理
    Task<IEnumerable<RoleDto>> GetUserRolesAsync(Guid userId); // 获取用户的角色列表
    Task AssignRolesToUserAsync(Guid userId, List<Guid> roleIds); // 为用户分配角色
    Task<IEnumerable<PermissionDto>> GetUserPermissionsAsync(Guid userId); // 获取用户的所有权限
}